A digital measurement instrument is used to measure and/or observe electrical signal properties. As an example, a digital oscilloscope can be used to capture and display a snapshot of an electrical signal in order to allow a user to observe features such as signal shape, amplitude, and so on. In oscilloscopes and other digital measurement instruments, a trigger may be used to determine when a desired portion of a signal is captured for measurement, display, and/or analysis. Such a trigger may be fired, for instance, upon detecting a recognizable event such as a transitioning signal edge or certain types of glitches.
FIG. 1 illustrates a simplified example of a digitizing oscilloscope 100 in order to show how triggering occurs in some conventional contexts. As illustrated in FIG. 1, oscilloscope 100 comprises a signal conditioner 105, an analog to digital converter (ADC) 110, a memory 115, a processor 120, a display 125, a trigger 130, and a timebase 135.
Signal conditioner 105 receives an analog input signal, typically through an oscilloscope probe, and performs signal conditioning operations such as vertical scaling. ADC 110 receives the analog input signal from signal conditioner 105 and samples and digitizes the signal to produce a digital input signal. ADC 110 then stores the digital input signal in memory 115 for subsequent presentation on display 125. Trigger 130 analyzes the analog input signal to detect a trigger event, and timebase 135 adjusts the timing of display 125 according to the detected event. Processor 120 performs any required post-processing on the stored digital input signal. Display 125 then presents a portion of the digital input signal in response to the detected trigger event.
In most modern oscilloscopes, triggering can be performed in a variety of different ways. For example, it can be performed using different trigger modes, such as an auto sweep mode, a single sweep mode, and a trigger sweep mode. The auto sweep mode is generally used where the user is unsure how to setup the trigger conditions or for DC waveforms, and it forces the oscilloscope to trigger in the absence of a trigger condition, giving glimpses of a waveform. The single sweep mode facilitates the capture of single-shot events such as glitches without subsequent waveform data overwriting the display. The trigger sweep mode updates the display only when a trigger event occurs. The oscilloscope waits until a trigger condition occurs before it displays any sampled waveform data; it is then re-armed automatically and a next segment of data is captured. This mode is commonly used to view repeating waveforms. One of the main differences between the single sweep and trigger sweep modes is that that the former does not re-arm and redisplay but stops after the first trigger.
Various different types of triggers can be used within each of the above modes. Examples of such triggers include edge triggers, edge transition triggers, edge-to-edge triggers, pulse width triggers, glitch triggers, state triggers, runt triggers, timeout triggers, TV mode triggers, set up and hold mode triggers, window mode triggers, and communication mode triggers, to name but a few. In addition, trigger functionality can be modified by additional mechanisms, such as an AND qualifier, a hold off time, or a sensitivity setting. The AND qualifier performs a logical AND operation on the triggers of one or more channels. The hold off time sets an amount of time that the oscilloscope waits before re-arming its trigger circuitry. This can be used, for example, to trigger on a first pulse among a burst of pulses, hut not on the remaining pulses. The sensitivity setting is typically adjusted based on hysteresis in trigger circuitry to prevent incorrect double-triggering on low bandwidth waveforms. A low sensitivity setting is typically used for all waveforms of 4 GHz or below.
The above triggers are typically implemented in hardware based trigger circuitry. For example they can be implemented in a circuit within trigger 130 of FIG. 1. Nevertheless, triggers can also be implemented in software to allow a user or developer to specify more complex and/or flexible triggering functions. For example, certain triggers can be implemented by executing software on processor 120 to examine digital data stored in memory 115. Several examples of such triggers are implemented by Agilent's InfiniiScan software. They include a “measurement finder” trigger, a “zone qualify finder” trigger, a “generic serial pattern finder” trigger, a “non-monotonic edge finder” trigger, and a “runt finder” trigger.
By comparison with hardware based triggers, software triggers tend to offer more flexibility, functionality, and control over the functionality. For example, the Infiniiscan runt finder trigger offers hysteresis control, whereas a hardware based runt finder trigger generally does not. However, software triggers are generally dependent on hardware triggers; e.g., they are usually armed immediately after the hardware trigger or after a certain time delay. This functionality provides a two-level sequencer, hardware trigger followed by software finder with a specified delay between events. In addition, software triggers tend to be much slower than hardware triggers, which results in significant amount of dead-time where the oscilloscope is not able to look for a next trigger event. This dead-time makes it unlikely that a software trigger will fire on a rare event over a short period of time. Dead-time also exists in hardware triggers, but it tends to be less than in software triggers although for very fast waveforms when searching for rare events dead time may still be significant.
FIG. 2 is a diagram illustrating the concept of dead-time in an oscilloscope. As illustrated in FIG. 2, the oscilloscope receives an input signal, and it arms a trigger at vertical lines labeled “Trigger”. During a first interval labeled “Acq Time”, the trigger waits for a trigger event, which occurs in this example at a time indicated by a dotted vertical line. Upon detecting the trigger event, the trigger is fired. Thereafter, in an interval labeled “Dead Time”, oscilloscope data is captured, stored, analyzed, and processed for display. These operations take time, and they vary as a function of various factors, such as memory depth, sampling rate, and waveform update rate. In some conventional oscilloscopes, for instance, dead time may occupy as much as 99% of the total operating time. During the dead time, the oscilloscope does not analyze incoming data, so it is essentially “blind”. Accordingly, it is likely that an oscilloscope will fail to detect rare events unless it operates over a relatively long time period.
In view of the above shortcomings of conventional hardware and software based triggers, there is a general need for triggers capable of providing improved flexibility while maintaining adequate performance.